package com.sunyard.pcc.web.form;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: Hewei
 * @Description: 用户对应form
 * @Date: Created in 10:10 2018/2/27
 */
// TODO: 2018/2/27 为验证添加顺序规定
@Data
public class SysUserForm implements Serializable {

    private static final long serialVersionUID = -2056230097750141014L;


    /**
     * 用户名
     * sys_user.user_name
     */
    @NotBlank(message = "用户名不能为空")
    @Length(min = 5, max = 14, message = "用户名长度应在5-14之间")
    private String userName;

    /**
     * 密码
     * sys_user.password
     */
    @NotBlank(message = "密码不能为空")
    private String password;


    /**
     * 邮箱
     * sys_user.email
     */
    @NotBlank(message = "邮箱不能为空")
    @Pattern(regexp = "^\\d+@[a-z|0-9]+\\.[a-z]+$", message = "邮箱格式不正确")
    private String email;


    /**
     * 手机号码
     * 大陆手机号码11位数，匹配格式：前三位固定格式+后8位任意数
     * 此方法中前三位格式有：
     * 13+任意数
     * 15+除4的任意数
     * 18+除1和4的任意数
     * 17+除9的任意数
     * 147
     */
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^((13\\d)|(15[0-3,5-9])|(18[0,2,3,5-9])|(17[0-8])|(147)|)\\d{8}$", message = "手机号格式不正确")
    private String telephone;


    /**
     * 所属部门编号
     * sys_user.department_id
     */
    @NotNull
    private Long departmentId;

    /**
     * 所属部门名称
     * sys_user.department_name
     */
    @NotBlank
    private String departmentName;

    /**
     * 用户所拥有权限
     */
    @NotNull
    private List<Long> roleIdList;


}
